home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs10.d81 / dark88-4.sfx / m.p1200.a1 (.txt) < prev   
Commodore BASIC  |  1990-02-12  |  5KB  |  240 lines

  1. 1000 REM *      DARKTERM '88
  2. 1010 REM * POCKET 1200 MODEM FILE SRC
  3. 1020 REM *
  4. 1030 OPEN1,9,15,"S0:D'88.P1200":CLOSE1
  5. 1040 OPEN2,9,1,"0:D'88.P1200"
  6. 1050 SYS700
  7. 1060 .OPT O2
  8. 1070 ;
  9. 1080 CHKIN  =$FFC6 ; KERNAL EQUATES
  10. 1090 CHKOUT =$FFC9
  11. 1100 CHRIN  =$FFCF
  12. 1110 CHROUT =$FFD2
  13. 1120 CLRCHN =$FFCC
  14. 1130 GETIN  =$FFE4
  15. 1140 ;
  16. 1150 PTR    =140 ; TEMP POINTER
  17. 1160 BAUD   =873
  18. 1170 ;
  19. 1180 DETECT =922 ; CARRIER DETECT FLAG
  20. 1190 DDELAY =927 ; DIALING DELAY
  21. 1200 WDELAY =926 ; CARRIER WAIT DELAY
  22. 1210 HDELAY =925 ; HANGUP DELAY
  23. 1220 ;
  24. 1230 MILLI  =$880+24 ; USE TERMINAL'S
  25. 1240 ;
  26. 1250 *=$4500 ; STARTS HERE UP TO $47FF
  27. 1260 ;
  28. 1270 JMP ANSWER ; AUTO-ANSWER
  29. 1280 JMP DODIAL ; AUTO-DIAL
  30. 1290 JMP ONHOOK ; LABEL SAYS ALL
  31. 1300 JMP OFHOOK ; OFF HOOK
  32. 1310 JMP CARCHK ; LOST CARRIER CHECK
  33. 1320 JMP CUSTOM ; USER DEFINED ROUTINE
  34. 1330 JMP HANGUP ; HANGUP ROUTINE
  35. 1340 ;
  36. 1350 ONHOOK LDA #$22 ; IS THIS RIGHT
  37. 1360 STA $DD03
  38. 1370 LDA #0
  39. 1380 STA $DD01
  40. 1390 RTS
  41. 1400 ;
  42. 1410 OFHOOK LDA #$20 ; OFF-HOOK
  43. 1420 STA $DD01 ; PIN J HI
  44. 1430 RTS
  45. 1440 ;
  46. 1450 DODIAL STX PTR ; SAVE ADDRESS
  47. 1460 STY PTR+1 ; OF DIAL PTR STRING
  48. 1470 JSR ONHOOK ; HANG UP
  49. 1480 LDA HDELAY ; WAIT HDELAY SECONDS
  50. 1490 JSR WAIT
  51. 1500 JSR OFHOOK ; OFF-HOOK
  52. 1510 LDA #2 ; WAIT 2 SECONDS
  53. 1520 JSR WAIT
  54. 1530 LDY #0 ; INDEX TO START
  55. 1540 STY POINT
  56. 1550 AUTO1 LDY POINT ; GET INDEX
  57. 1560 LDA (PTR),Y ; AND CHARACTER
  58. 1570 CMP #"0" ; CHECK FOR NUMBER
  59. 1580 BCC NEXT ; NO
  60. 1590 CMP #":"
  61. 1600 BCS NEXT ; NO
  62. 1610 SEC      ; LESS 48 TO GET # OF
  63. 1620 SBC #48  ; PULSES
  64. 1630 BNE AUTO2
  65. 1640 LDA #10  ; 0, SO MAKE 10 PULSES
  66. 1650 AUTO2 STA PULSE ; SAVE IT
  67. 1660 LDA #0 ; PULSE COUNT
  68. 1670 STA COUNT
  69. 1680 AUTO3 JSR (null)OF ; PULSE OFF LINE
  70. 1690 LDX DDELAY ; WAIT DELAY
  71. 1700 LDY DDELAY+1
  72. 1710 JSR MILLI ; WAIT IT OUT
  73. 1720 JSR OFHOOK ; PULSE ON LINE
  74. 1730 LDX DDELAY ; WAIT AGAIN
  75. 1740 LDY DDELAY+1
  76. 1750 JSR MILLI
  77. 1760 INC COUNT ; NEXT PULSE
  78. 1770 LDA COUNT
  79. 1780 CMP PULSE ; DONE YET
  80. 1790 BNE AUTO3 ; NO
  81. 1800 LDA #40 ; WAIT 2/3 SEC FOR NEXT #
  82. 1810 JSR JIFFY
  83. 1820 JSR ABORT ; CHECK FOR STOP KEY
  84. 1830 NEXT INC POINT ; NEXT #
  85. 1840 LDA POINT
  86. 1850 CMP #18 ; DONE ALL 18 CHARS
  87. 1860 BNE AUTO1 ; NO, (null) BACK
  88. 1870 LDA WDELAY ; WAIT OUT THE DELAY
  89. 1880 JSR WAIT
  90. 1890 LDA $DD01 ; HAVE A CARRIER
  91. 1900 AND #16
  92. 1910 BEQ AUTO4 ; YES, SIGNAL IT
  93. 1920 SEC ; NO, SET ZERO FLAG TRUE
  94. 1930 LDA #0 ; AND SET CARRY (NOT ABORT)
  95. 1940 RTS
  96. 1950 AUTO4 SEC ; HAVE CARRIER, SET
  97. 1960 LDA #1 ; ZERO FALSE
  98. 1970 RTS ; EXIT
  99. 1980 ;
  100. 1990 ABORT LDA $91 ; CHECK STOP KEY
  101. 2000 CMP #$7F
  102. 2010 BNE ABO1 ; NO, (null) BACK
  103. 2020 ABO0 PLA ; PULL RETURN ADDRESS
  104. 2030 PLA
  105. 2040 CLC ; CLEAR THE CARRY
  106. 2050 ABO1 RTS ; AND EXIT TO TERMINAL
  107. 2060 ;
  108. 2070 WAIT TAX ; 1 SECOND COUNTER
  109. 2080 W0 JSR CLRTIM
  110. 2090 W1 LDA $91 ; CHECK FOR ABORT
  111. 2100 CMP #$7F ; DURING THE WAIT
  112. 2110 BEQ ABO0
  113. 2120 LDA $A2
  114. 2130 CMP #60
  115. 2140 BCC W1
  116. 2150 DEX
  117. 2160 BMI W2
  118. 2170 BNE W0
  119. 2180 W2 RTS
  120. 2190 ;
  121. 2200 POINT  .BYT 0
  122. 2210 COUNT  .BYT 0
  123. 2220 PULSE  .BYT 0
  124. 2230 KEYVAL .BYT 0
  125. 2240 ;
  126. 2250 ANSWER LDA #32+2
  127. 2260 STA $DD03 ; SET UP DDR
  128. 2270 LDA #0
  129. 2280 STA $DD01
  130. 2290 LDA #60 ; WAIT 1 SECOND
  131. 2300 JSR JIFFY
  132. 2310 AN1 LDA $DD01 ; CHECK FOR RING
  133. 2320 AND #8 ; DETECT
  134. 2330 BEQ AN2 ; WE HAVE R.D., (null) ON
  135. 2340 JSR GETKEY ; CHECK FOR KEYPRESS
  136. 2350 BEQ AN1
  137. 2360 AN0 JSR OFHOOK ; OFF-HOOK
  138. 2370 LDA KEYVAL ; GET KEY PRESSED
  139. 2380 CLC ; AND ABORT
  140. 2390 RTS
  141. 2400 AN2 JSR CLRTIM
  142. 2410 JSR OFHOOK ; OFF-HOOK
  143. 2420 AN3 JSR GETKEY
  144. 2430 BNE AN0
  145. 2440 LDA $DD01 ; CHECK FOR DCD LINE
  146. 2450 AND #16
  147. 2460 BEQ AN4 ; (null)T CARRIER, SIGNAL
  148. 2470 LDA 160
  149. 2480 CMP #8 ; 30 SECOND CARRIER CHECK
  150. 2490 BCC AN3
  151. 2500 BCS ANSWER ; TIMES UP, RESET
  152. 2510 AN4 JMP CSPEED ; SPEED CHECK
  153. 2520 ; LDX #<300 ; SET BAUD RATE TO 300
  154. 2530 ; LDY #>300
  155. 2540 ; RTS
  156. 2550 ;
  157. 2560 (null)OF LDA #0 ; PULSE ON-HOOK
  158. 2570 STA $DD01
  159. 2580 RTS
  160. 2590 ;
  161. 2600 CLRTIM LDA #0
  162. 2610 STA $A0
  163. 2620 STA $A1
  164. 2630 STA $A2
  165. 2640 RTS
  166. 2650 ;
  167. 2660 JIFFY TAX
  168. 2670 JSR CLRTIM
  169. 2680 JIFF1 CPX $A2
  170. 2690 BCS JIFF1
  171. 2700 RTS
  172. 2710 ;
  173. 2720 GETKEY JSR GETIN
  174. 2730 PHA
  175. 2740 STA KEYVAL
  176. 2750 PLA
  177. 2760 RTS
  178. 2770 ;
  179. 2780 HANGUP JSR ONHOOK ; (null) ON-HOOK
  180. 2790 LDA #120 ; WAIT 2 SECONDS
  181. 2800 JSR JIFFY
  182. 2810 LDA $DD01
  183. 2820 AND #16
  184. 2830 BEQ HANGUP ; DO UNTIL HUNG UP
  185. 2840 JSR OFHOOK ; SET UP FOR NEXT CALL
  186. 2850 LDA #120 ; WAIT 2 SECONDS
  187. 2860 JMP JIFFY
  188. 2870 ;
  189. 2880 CARCHK BIT DETECT
  190. 2890 BPL CAR1 ; SKIP DETECTION
  191. 2900 LDA $DD01
  192. 2910 AND #16
  193. 2920 BEQ CAR1 ; STILL HAVE CARRIER
  194. 2930 CLC
  195. 2940 RTS ; CARRIER LOST
  196. 2950 CAR1 SEC
  197. 2960 RTS
  198. 2970 ;
  199. 2980 CUSTOM LDX BAUD
  200. 2990 LDY BAUD+1
  201. 3000 CPX #<1200
  202. 3010 BNE CST1
  203. 3020 CPY #>1200
  204. 3030 BNE CST1
  205. 3040 LDA $DD01
  206. 3050 ORA #2 ; SET PORT BIT FOR 1200
  207. 3060 BNE CST2
  208. 3070 CST1 LDA $DD01
  209. 3080 AND #%11111101
  210. 3090 CST2 STA $DD01
  211. 3100 RTS
  212. 3110 ;
  213. 3120 ; * THIS ROUTINE WILL USE THE
  214. 3130 ;   PORT REGISTER TO DETECT THE
  215. 3140 ;   BAUD RATE OF THE INCOMING
  216. 3150 ;   CALL.
  217. 3160 ;
  218. 3170 CSPEED JSR CLRTIM
  219. 3180 LDA #30 ; WAIT .5 SECONDS
  220. 3190 JSR JIFFY
  221. 3200 JSR CLRTIM
  222. 3210 CSP1 LDA $DD01
  223. 3220 AND #1
  224. 3230 BEQ CSP2 ; LINE IS LO, 1200 BAUD
  225. 3240 LDA $A2
  226. 3250 CMP #6 ; CHECK FOR 100 MILLISEC
  227. 3260 BCC CSP1
  228. 3270 LDX #<300 ; 300 BAUD
  229. 3280 LDY #>300
  230. 3290 SEC
  231. 3300 RTS
  232. 3310 CSP2 LDX #<1200
  233. 3320 LDY #>1200 ; 1200 BAUD CONNECT
  234. 3330 LDA $DD01
  235. 3340 ORA #2 ; SET FOR 1200 BAUD
  236. 3350 STA $DD01
  237. 3360 SEC
  238. 3370 RTS
  239. 3380 ;
  240.